SD cards as compact, portable nonvolatile memories, which are used in digital cameras, portable devices such as mobile phones, PCs, and household electrical appliances such as televisions, have prevailed.
An SD card operates based on clock signals received from a host controller, which samples data received from the SD card using clocks transmitted to the SD card. The received data at that time is delayed depending on the wiring length from a host controller LSI to the SD card and a response speed of the SD card. When operation clocks of the SD card exceed several tens of megahertz, this delay often becomes greater than or equal to half an operation clock period. Therefore, the host controller cannot use the transmitted clocks intact upon sampling the received data.
In case of an fixed data sampling (FDS) SD card for which a delay amount in the SD card is specified by specifications, a transmission clock frequency is generally several tens of megahertz, and data reception clocks use signals which are obtained by delaying transmission clocks using a delay line on a board. That is, transmission clock signals, which are transmitted and delayed via the delay line that extends from the host controller and returns to it via the vicinity of a card slot on the board, are used as reception clocks. This method has an advantage that a delay caused by an I/O buffer in the host controller LSI and an actual wiring line on the board need not be taken into consideration.
However, since the aforementioned conventional method requires transmission clock pins arranged on the host controller LSI, it results in an increase in the number of pins and that of power consumption caused by currents flowing through the delay line.
In order to sample received data without using any delay line, sampling clocks have to be generated by giving an appropriate delay to transmission clocks inside the host controller. This delay value has to be decided in consideration of a delay of an I/O buffer included in the host controller, that of a wiring line, and manufacturing variations. Therefore, in this case, it is difficult to decide the delay value. Since this delay is set inside the host controller, when a delay amount changes because of, for example, a change in ambient temperature, the delay amount cannot be changed.